package com.antifly.common.exception.bizException;


/**
 * @Description : 异常消息的枚举类(此类属于业务异常枚举类)
 * @Param :
 * @Return :
 * @Author : wx
 * @Date : 2021-01-28
 */
public enum BillExceptionCodeEnum implements BizExceptionCode {

    // 已指明的异常,在异常使用时message并不返回前端，返回前端的为throw新的异常时指定的message
    SPECIFIED("-1", "系统发生异常,请稍后重试"),
    NOT_FOUND_DATA("1001", "未查询到指定条件的数据;请更改条件后重试"),
    GET_USER_INFO_BY_TOKEN("1002", "Token获取用户信息失败！"),
    PARAMS_FORMAT_ERROR("1003", "参数格式错误"),
    // bill业务异常,60xx,账单类异常，61xx,统计类异常，62xx,其他类异常
    NO_BILL_MODE_FOUND("6001", "无匹配计费模型！"),
    NO_ENTITY_SPU_ID("6002", "实体spuId缺失， 创建账单失败！"),
    EDIT_DATA_ERROR("5013", "修改工程信息失败，请检查！"),
    NOT_DATA_DELETE("5014", "没有消息被删除，请检查！"),
    PARAM_TYPE_ERROR("5015", "工程文件类别,需为“隐蔽工程”或者“环境变化”！"),
    WRONG_TYPE_OF_OPERATION("5016", "进行类型错误，需为”重点工程总体计划“或”重点工程进度表“或”重点工程周反馈“"),
    DICT_CODE_ERROR("5017", "字典编码错误;请查询接口文档后重试"),

    //订单删除
    ORDER_COMPLETE_CAN_NOT_DELETE("6003", "订单已完成，资源已经创建，不能删除订单！"),
    ON_AUTH_DELETE_ORDER("6004", "无权限删除订单，只有云管理员角色（CloudAdmin）才能删除订单！"),
    ORDER_NOT_FOUND("6005", "订单未找到！"),
    ORDER_HAS_DELETED("6006", "订单已经删除了，请勿重复操作！"),
    ORDER_ENTITY_CAN_DELETED("6007", "不能再删了，当前订单只有一个资源了！"),
    ORDER_PROJECT_UPDATE("6008", "订单号不能为空！"),
    CHARGE_TIME_FORMAT_ERR("6009", "账期格式异常！"),

    // excel解析错误
    EXCEL_PARSING_ERROR("5010", "excel解析错误;请稍后重试"),
    EXCEL_MERGE_ERROR("5011", "excel解析错误【合并单元格取值】;请稍后重试"),
    EXCEL_TEMPLATE_NOT_FOUND("5012", "未找到下载模板;请检查配置;"),
    EXCEL_NOT_FOUND("5099", "未找到对应数据请确认模板无误后重试"),

    // Minio错误
    MINIO_FILE_NOT_FOUND("5200", "下载文件失败或当前存储桶不存在该文件!"),


    // 附件表常规错误
    ATTACHMENT_NOT_FOUND("5100", "未查询到对应附件信息;请确认文件标识是否错误或已下载该文件"),
    FILE_EXIST("5101", "已存在相同文件夹/文件,不能重复上传"),
    FILE_OCCUPY("5102", "当前目录下存在文件不允许删除！请先清理文件夹下文件后重试"),
    FILE_FORMAT_ERROR("5107", "未查询到对应视频格式附件,请检查【字典配置】-【附件上传视频格式】项");


    private final String code;

    private final String message;

    /**
     * @Description :
     * @Param : [code, message]
     * @Return :
     */
    BillExceptionCodeEnum(String code, String message) {

        this.code = code;
        this.message = message;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }
}
